Computer systems use memory devices, such as Dynamic Random Access Memory (DRAM) devices, to store data accessed by a workload. DRAM chips or packages typically include at least one array bank, and a row buffer coupled to that array bank. The row buffer is critical to the operation of the DRAM. To read from or write to a row included in the DRAM array, the requested row is first activated/opened in the array bank, and then the contents of the activated/opened row are transferred (i.e., copied) into the row buffer.
The latency and energy cost involved in transferring the contents of a requested row from an array bank to its corresponding row buffer are considerable. Furthermore, the transfer is destructive—the row must be written back into the DRAM array (referred to as a row precharge or close) before activating/opening another row.
A row buffer hit occurs when a memory request is satisfied by an already opened row, whereas as a row buffer miss occurs when a memory request is satisfied by a row different than the one kept in the buffer. A DRAM controller may employ a specific row buffer management policy to control how and when a row buffer is precharged. For example, an open page policy executes a row precharge only when a different row in the array bank is to be transferred to the row buffer. An open page policy allows for a series of row buffer hits if a workload exhibits a high spatial locality (i.e., requests will access the same open row repeatedly and consecutively before accessing a different row); however, the use of such a row buffer management, in conjunction with the typical DRAM package consisting of one row buffer per array bank, will not help reduce the operating costs of memory access requests when used on a system executing a workload with low spatial locality (e.g., multi-threaded workloads).
Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview of embodiments of the invention is provided below, followed by a more detailed description with reference to the drawings.